import axios from 'axios' // 导入axios
import router from '@/router/index'

const service = axios.create({
    // baseURL: 'http://120.24.171.50:8801',
    baseURL: 'http://localhost:8801',
    timeout: 50000 //请求时间超过20秒

})

/**
 * 请求流程：
 * 1、当还未配置 axios包装类时  需要先创建request.js包装类  创建axios实例、请求拦截、响应拦截
 * 2、创建api 请求包装类   创建api请求
 * 3、用的地方调用对应的api包下的方法
 * 4、传入参数  
 * 
 * 如果不是主动发送请求、而是页面初始化渲染则需要在create中调用请求方法  create方法中调用对应的请求方法快点你先试一下
 */

// 通过Cookies获取token值  这个项目不需要拦截器  看微信
// service.defaults.headers.common['Authorization'] = getCookies("token")

// // request 拦截器
// service.interceptors.request.use(
//     // 配置
//     config => {
//         //获取的token 不为空则将token配置到请求头中的Authorization字段中
//         if (getCookie("token") != undefined) { // 如果获取的token 未被定义
//             config.headers.Authorization = getCookie("token") // 让每个请求携带自定义token 请根据实际情况自行修改
//         }
//         return config // 返回
//     },
//     error => { // 错误
//         console.log(error); // 输出错误
//         Promise.reject(error) // 返回一个新的Promise实例 该实例状态为rejected
//     })

// response 拦截器
service.interceptors.response.use(
    // 响应
    response => {
        const res = response.data // 获取响应的值存到res
        if (res.code === 200) { // 状态码成功时直接返回到页面渲染
            return res // 返回
        } else if (res.code === 401 || res.code === 400) { // 状态码为401或者400时
            console.log('返回错误内容', res); // 输出
            router.push('404') // 跳转对应路径
            return res // 返回
                // } else if (res.code === 500) { // 状态码为500时
                //     router.push('500') // 跳转对应路径
                //     return Promise.reject('error') // 返回异常
        } else if (res.code === 502) { // 状态码为502时
            router.push('502') // 跳转对应路径
            return Promise.reject('error') // 返回异常
        } else {
            return Promise.reject('error') // 返回异常
        }
    },
    error => {
        //网络出现超时
        // router.push('500')
        return Promise.reject(error) // 返回异常
    }
)

export default service